Desktopowy klient Pytigon zbudowany jest na wxPython, dając aplikacjom autentyczny natywny wygląd na Windows, Linux i macOS. Ta sama logika aplikacji, która napędza interfejs webowy, jest renderowana przez kontrolki wxPython — bez potrzeby osobnej bazy kodu.
Desktopowy klient to nie osobna aplikacja. To proces Pythona, który:
Taka architektura oznacza, że desktopowy klient automatycznie korzysta z każdej aktualizacji aplikacji webowej. Nie ma „budowania wersji desktopowej” — po prostu inny cel renderowania.
Klient wxPython (pytigon/pytigon/ptig.py) zapewnia:
Killer-feature desktopowego klienta to tryb hybrydowy — natywne kontrolki i zawartość webowa dzielą to samo okno. Na przykład:
Komunikacja między komponentami natywnymi a webowymi odbywa się przez mostek JavaScript Pytigon, pozwalający JavaScript wywoływać funkcje natywne i odwrotnie.
Podczas renderowania zawartości dla wxPython, Pytigon używa schhtml z kontekstem urządzenia wxPython (wxdc). To konwertuje szablony .ihtml bezpośrednio w hierarchie widgetów wxPython:
Szablon .ihtml → Parser schhtml → Drzewo widgetów wxPython → Wyświetlenie
Renderer wxPython obsługuje: - Etykiety, pola tekstowe, listy rozwijane - Tabele z sortowaniem, zmianą rozmiaru kolumn i edycją w linii - Wyświetlanie obrazów - Układ formularzy z sizerami - Panele z zakładkami i notebooki - Okna dialogowe
Pytigon definiuje niestandardowe tagi kontrolek dla widgetów specyficznych dla pulpitu:
[wx_button label="Click me" action="my_action"]
[wx_listbox name="items" source="my_view"]
[wx_treectrl name="hierarchy"]
Zobacz Control tags dla pełnego opisu.
Desktopowy klient wspiera system wtyczek do rozszerzania funkcjonalności natywnej:
Zobacz Plugins dla API wtyczek.
| Platforma | Obsługa wxPython | Uwagi |
|---|---|---|
| Linux | Pełna | Główna platforma deweloperska |
| Windows | Pełna | Dostępny instalator (.exe) |
| macOS | Pełna | Ograniczone testy |
| Android | Oparty na Kivy | Osobny klient przez Kivy z osadzoną przeglądarką |
| iOS | Nieobsługiwany | Użyj przeglądarki WWW zamiast tego |